home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
networking
/
ip
/
ka9q
/
xobbs.arc
/
read_me
< prev
next >
Wrap
Text File
|
1989-05-03
|
4KB
|
83 lines
Some very criptic notes on the XOBBS.
The bbs code runs only on SysV at the moment. BSD usage will require
coercing the SysV IPC Message Queue stuff into Unix Domain Sockets.
This is left as an exercise to the reader.
The Module "ax_mbx.c" and its companion header "ax_mbx.h" are
replacements for the W9NK mailbox.
The 'dif' files are changes to 'net' itself, in particular , the
.33a(w9nk, kd8wk) version, but should be usable with any version
that supports the W9NK mailbox.
Now, the AH-HEM ssid question. I prefer to use a second SSID
for the bbs so that a carriage return is not necessary to start
the bbs. This is the scheme I am using and have had no problems
concerning the operation of the TCP and net/rom sessions.
The choice is yours. I have included a definition SID2 in the
code. If you define this in the makefile, you get two ssids,
which are named by the entries 'ax25 mycall W3XXX' and
'ax25 bbscall W3XXX-1' for example, in the startup.net file.
Four source files in 'net' have been '#ifdef'd' so that the
proper things happen. If you choose not to use the second
SSID, then your users will have to send a CR to start the
bbs. Incidentally, using the two SSIDs allows ax25 connections
to your 'mycall' ID to spawn incoming ax25 terminal sessions.
This is probably a plus, as you can still have your non-bbs
buddies open terminal sessions to you while the bbs is running
on the other SSID.
I have been beating upon the functional aspects of the code and
may have neglected some of the startup niceties. If things don't
fire up, you may need to create null files for xouser or bbsmotd
or any other file for which the bbs will look upon its creation.
Check "config.xo" to see how things should be layed out.
Basically, there are 4 message queues created in the system
by net for use by the mailbox; Send, Receive, Control Send and
Control Receive. Control recieve is currently not used. These
are reported by descriptor number upon startup of net. The PID of
each mailbox spawned is saved in the mailbox session structure
and used as the "message type" for the message queues to steer
the message to the desired bbs. For those unfamiliar with
message queues on SysV, each message has a "message type"
, which is a long integer, attached. It is possible to selectively
receive from a que by specifying the messafe type, thus allowing
each bbs to block on the queue until input for it arrives. Likewise,
NET looks for a message on the send queue that has the message type
that corresponds numerically to the PID of the bbs as it climbs
though the session list. If such a message arrives, NET transmits
it over the ax25 link specified in that mailbox session structure.
On recieve, NET checks each receive upcall's axp against all the
axp's saved in the mailbox session structures and , when a match
is found, sends that data "down the pipe" to the bbs by attaching
the bbs's PID as a message type to a message on the receive queue.
If the bbs wishes to be killed, it sends a kill request up the
message que to the NET process, which is non-selectively receiving
on the Control Send queue. NET ascertains the PID of the bbs requesting
to be killed and does a kill -9 on that PID. The only other use
of the Control Send queue is when the forwarding bbs wishes to
inform net that either it is finished forwarding to a particular
mailbox and wishes to go to the next connection, or it has failed
and wishes to go the next mailbox in the forwarding file.
Multi-bbs access to the mail files is accomplished by a daemon
process call "maildaemon.c". This process is started up as
a background task in the mailbox home directory.
You will need to create the subdirectories "fwding", "mail" and
"temp" in the bbs home directory. You will probably need to create
a null "highnum" file and perhaps a null "xouserfile".
Look at "config.xo".
"trigger.c" spawns the forwarder.
Local invocation of the mailbox (from the shell prompt) is
"xobbs call".
-Jim (pitt!w2xo!durham)